<?php
class transaccionentrada extends Controller 
{
	//Esta es la costante de ventas.
	
	const IDMotivoSalida = 6;
	
	function __construct()
	{
		parent::Controller();
		$this->load->database();
		$this->load->library(array('chgraficos','chcalendario'));
		$this->load->model(array('mservicios', 'usuarios', 'mmodeloservicios',
		                         'mtransaccionentrada', 'detallerentradas', 'mtipoentrada','mprovincia2',
		                         'mregistro', 'mmotivosalida', 'TransaccionHistorico', 'Merror','mscore','registroeqsmodel','tiposeguimientomodel','mservicios','mjurisdiccion','mresponsable'));
	}
	
	function index()
	{

		$quejasSugerencias = $this->registroeqsmodel->getQuejasSugerencias();
		$this->load->view('main', array('content_page' => 'maintrasaccion','menutop'=>'2','quejasSug' =>$quejasSugerencias));
		
	}
	
	function pventas(){
		
		$usuarios = $this->usuarios->LoadUsuarioByIdDepAcivos(2);		
	    $this->load->view('main', array('content_page' => 'vsegimento','menutop'=>'4','usuarios' => $usuarios));
	      
	}
	
	function pruebaError()
	{
	   $objectos = $this->Merror->LoadJurisdiccion();
	   
	   foreach ($objectos as $k)
	   {
	    
	      $where = $k->getIdTransaccion();
	      $data = array("FechaHistorico"=>$k->getFechaH());
	     
	     if ($this->TransaccionHistorico->update($where,$data)) {
	     	echo $k->getIdTransaccion().'</br>';
	     }else{
	        echo "no<br/>";
	     }
	    
	   }
	   
	}
	
	public function obtenerCompania()
	{
		
		$idCompania  = $this->input->post('idregistro');
		$compania    = $this->mtransaccionentrada->LoadjurisdiccionById($idCompania);
		$servicios 	 = array(2,3,7,8,9,10,11,12,13,14,17);
		$servicio    = $this->mservicios->LoadServicioByIdWhere($servicios);
		$idMotivo    = $this->input->post('motivo');
		$precio      = $this->input->post('precio');
		
		if($idMotivo != 6){
			redirect('transaccionentrada/finalizar/'.$idCompania.'/'.$idMotivo);
			
		}
		
		$jurisdicion = $this->mjurisdiccion->LoadJurisdiccion();
		$responsable = $this->mresponsable->LoadResponsable();
		$provincia   = $this->mprovincia2->LoadProvincias();
		
		
		
		$this->load->view('main',array('content_page' => 'crearcompania',
   		 							   'menutop'      => 0, 
   			 						   'objeto'       => $compania,
									   'servicio'	  => $servicio,
									   'jurisdicion'  => $jurisdicion,
								       'responsable'  => $responsable,
									   'provincia'    => $provincia,
									   'precio'		  => $precio));
						    
	}
	
	
	
	function mainEmail(){
		   $producto = $this->mservicios->Loadservicios(); 
		   $msalida = $this->mmotivosalida->LoadEstatus();
		   $this->load->view('main', array('content_page' => 'mainEmail','menutop'=>0,'servicio'=>$producto,'msalida'=>$msalida));
	}
	
	function mainhistorial()
	{
		$this->load->view('main', array('content_page' => 'registrohistorial','menutop'=>0));
	}
	
	function add()
	{
		
		$servicios = array(2,3,7,8,9,10,11,12,13,14,15,17);
		$servicio    = $this->mservicios->LoadServicioByIdWhere($servicios);
	
	    $this->load->view('main',array('content_page'     => 'registroentrada',
		                               'servicios'        => $servicio,
		                               'usuarios'         => $this->usuarios->LoadUsuarios(),
		                               'tipoentrada'      => $this->mtipoentrada->LoadEstatus(),
		                               'menutop'          => '2'));
	}
	
	function adddetail()
	{    
		
		
		$detalle = $this->session->userdata('idregistro');
		
		$registro = $this->mtransaccionentrada->LoadjurisdiccionById($detalle);

		$tiposegui = $this->tiposeguimientomodel->loadData();
		
		$this->load->view('main',array('content_page'      => 'detalle_add',
		                               'id'                => $this->session->userdata('idregistro'),
		                               'menutop'           => '2',
		                               'registro'          => $registro,
									   'tsegui'			   => $tiposegui));
		
	}
	
    function edit($id_registro)
    {
		$registro = $this->mtransaccionentrada->LoadjurisdiccionById($id_registro);
		$servicios = array(2,3,7,8,9,10,11,12,13,14,15,17);
		$servicio    = $this->mservicios->LoadServicioByIdWhere($servicios);
		
		$this->load->view('main', array('content_page'      => 'registroentrada_edit', 
		                                'transaccion'       => $registro,
		                                'servicios'         => $servicio,
		                                'usuarios'          => $this->usuarios->LoadUsuarios(),
		                                'tipoentrada'       => $this->mtipoentrada->LoadEstatus(),
		                                'menutop'           => '2'));
    }
   
   function editdetalles($id)
   {     
   	  
    	$detalle = $this->detallerentradas->LoadDetalleById($id);
        $registro = $this->mtransaccionentrada->LoadjurisdiccionById($detalle->getIdSRegistro());
   	    $this->load->view('main', array('content_page' => 'detalle_edit','menutop'=>'2','detalle'=>$detalle,'registro'=>$registro,'idtransaccion'=>$this->mtransaccionentrada->LoadjurisdiccionById($detalle->getIdSRegistro())));
   }
   
   function CalcularDias($fechapar,$fechaact)
   {
       
		$fechapar = substr($fechapar,0,10);
		
		$fechaact = substr($fechaact,0,10);
		
		$fechapar_arr=explode('-',$fechapar);
		
	
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
	
	function CalcularDias3($fechapar)
	{
       
		$fechapar = substr($fechapar,0,10);
		
		$fechaact = date("Y-m-d");
		
		$fechapar_arr=explode('-',$fechapar);
		
	
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
	
  
	
	function save(){

			$this->form_validation->set_rules('referencia', '"referencia"', 'trim|required');
                
			   $fecha_sucia=explode('/',$this->input->post('conctato')); 
			        if (count($fecha_sucia) > 1) 
			        		$fecha_limpia=$fecha_sucia[2]."-".$fecha_sucia[0]."-".$fecha_sucia[1];
			        else 
			            $fecha_limpia=$this->input->post('conctato');
			      
			        
			    $fecha_contacto = explode('/',$this->input->post('solicitud'));            
			        if (count($fecha_contacto) > 1) 
			          	   $fecha_nueva = $fecha_contacto[2]."-".$fecha_contacto[0]."-".$fecha_contacto[1];
			        else   
			             $fecha_nueva = $this->input->post('solicitud');
				
				
                $telefono2 = $this->input->post('telefono2');
				if (strlen($this->input->post('telefono2')) < 1) {
					$telefono2 = 'null';
				}
				
		    		
				$data = array('referencia'     			=>$this->input->post('referencia'),
				              'idServicios'    			=>$this->input->post('servicio'),
				              'IdUsuario'     			=>$this->input->post('usuario'),
				              'DateSolicitud'           =>$fecha_nueva.' H:i:s',
				              'DateSistema'             =>date("Y-m-d H:i:s"),
				              'idTipoEntrada'           =>$this->input->post('entrada'),
				              'ProximoContacto'         =>$fecha_limpia.' H:i:s',
				              'telefono1'               =>$this->input->post('telefono1'),
				              'telefono2'               =>$telefono2,
				              'email'                   =>$this->input->post('email'),
				              'Contacto'                =>$this->input->post('contacto'),
				              'est'                     =>$this->input->post('estrellas'));
			
				if($this->input->post('id_transaccion') === false){
					
					if($this->mtransaccionentrada->createRegistro($data) != false)
						$this->session->set_flashdata('status_message', 'El registro ha sido agregado satisfactoriamente');
					
						$idservicio=$this->mtransaccionentrada->LoadjurisdiccionByName($this->input->post('referencia'),$this->input->post('email'));
						$servicio = $idservicio->getIdTransaccion();
						
					    $idTipoSeguimiento = 1;
						
					    if($this->input->post('entrada') == 9 || $this->input->post('entrada') == 4 || $this->input->post('entrada') == 7){
					        $idTipoSeguimiento = 2;
					    }
						
				        $data = array('ContenidoDetalle'    => $this->input->post('comentario'),
					                  'IdTrasacionEntrada'  => $servicio,
					                  'IdUsuario'           => $this->input->post('usuario'),
					                  'DateSistema'         => date("Y-m-d H:i:s"),
				        		      'TimeSistema'         => date("H:i:s"),
				        		      'idTipoSeguimiento'   => $idTipoSeguimiento);
					             
					    $this->detallerentradas->createDetalle($data);	
					             
					    redirect('transaccionentrada');     
					
				}else{
						
					       $id = $this->input->post('id_transaccion');
					        if ( $this->mtransaccionentrada->updateRegistro($data,$id)) 
					         {
					            $this->session->set_flashdata('status_message', 'Ha ocurrido un error actualizando el registro. Intentelo nuevamente mas tarde o comuniquese con el administrador');
					            redirect('transaccionentrada'); 
					         } 
					        else 
					        {
					        	$this->session->set_flashdata('status_message', 'Ha ocurrido un error actualizando el registro. Intentelo nuevamente mas tarde o comuniquese con el administrador');
					        }

					       		redirect('transaccionentrada');              
					
					   }	
				
			}
			
                              function savedeta() {

        if ($this->input->post('id_detalle') === false) {

            $fecha_contacto = explode('/', $this->input->post('solicitud'));
            if (count($fecha_contacto) > 1)
                $fecha_nueva = $fecha_contacto[2] . "-" . $fecha_contacto[0] . "-" . $fecha_contacto[1];
            else {
                $fecha_nueva = $this->input->post('solicitud');
            }
            $data = array('ContenidoDetalle' => $this->input->post('detalle'),
                'IdTrasacionEntrada' => $this->input->post('idregistro'),
                'IdUsuario' => $this->input->post('iduse'),
                'DateSistema' => date("Y-m-d H:i:s"),
                'idTipoSeguimiento' => $this->input->post('tSeguimiento'),
                'TimeSistema' => date("H:i:s"));


            $date = array('ProximoContacto' => $fecha_nueva . ' 0:00:00',
                'est' => $this->input->post('estrellas'));


            $id = $this->input->post('idregistro');
            $this->mtransaccionentrada->updateRegistro($date, $id);



            if ($this->detallerentradas->createDetalle($data)) {
                $this->session->set_flashdata('status_message', 'El registro ha sido agregado satisfactoriamente');
            }


            else
                $this->session->set_flashdata('status_message', 'Ha ocurrido un error agregando registro. Intentelo nuevamente mas tarde o comuniquese con el administrador');
        } else {

            $data = array('ContenidoDetalle' => $this->input->post('name'));

            $id = $this->input->post('id_detalle');
            $this->detallerentradas->updateDetalle($data, $id);


            $fecha_contacto = explode('/', $this->input->post('solicitud'));

            if (count($fecha_contacto) > 1)
                $fecha_nueva = $fecha_contacto[2] . "-" . $fecha_contacto[0] . "-" . $fecha_contacto[1];
            else {
                $fecha_nueva = $this->input->post('solicitud');
            }

            $date = array('ProximoContacto' => $fecha_nueva . ' 0:00:00');
            $id = $this->input->post('id_registro');
            $this->mtransaccionentrada->updateRegistro($date, $id);
        }

        redirect('transaccionentrada');
    }

    function delete()
	{
		    $ids = $this->input->post('delete_rows');
			if(strpos($ids,"|") === false) 
			{ 
				if($this->mtransaccionentrada->Delete($ids) !== false) 
				{
					echo 'El Registro fue eliminado satisfactoriamente';
				} 
				else 
				{
						echo 'Hubo un error eliminando el Registro.  Intentelo nuevamente mas tardeo comuniquese con el administrador';
				}
				
			} 
			else 
			{
				$allGood = true;$allRelationGood = true;
				while(strlen($ids) > 0) 
				{
					if(strpos($ids, "|") !== false) {
						$actual = substr($ids, 0,strpos($ids, "|"));
						$ids = substr($ids,strpos($ids, "|") + 1);
					} else {
						$actual = $ids;
						$ids = "";
					}

				
						if($this->mtransaccionentrada->Delete($actual) == 0) 
						{//Error deleting
							$allGood = false;
						}
					}
					echo 'Los Registros fueron eliminados satisfactoriamente';
				}
		
	 }

	 function elidetalle($id)
	 {

	 	$this->detallerentradas->Delete($id);
	    redirect('transaccionentrada');  

	 }
	
	function data($id = false) 
	{
		
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdTransaccion'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );

	  $referencia = false;	    
      $contacto   = false;
      $servicio   = false;
       
		   if (strlen($id) > 0) {
		   	   $search = explode('-',$id);
		   	      
		   	       if ($search[0] != '')
		   	           $referencia = $search[0];
		   	     
		   	        if ($search[1] != '')
		   	           	$contacto = $search[1];     
		   	   
		            if ($search[2] != '')
		   	            $servicio   = $search[2];   
		   } 
		
	    $records = $this->mtransaccionentrada->LoadJurisdiccion($referencia, $contacto, $servicio, $start, $limit, $sortname, $sortorder);
	   
	    
		$totalRecords = $this->mtransaccionentrada->GetCount();
		
		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);

		if($records != false) {
			foreach($records as $jur) {
				
			
				$idservicio=$this->mservicios->LoadServicioById($jur->getIdServicios());
				$servicio = $idservicio->getNombreServicio();
				
				$iddetalle = $this->detallerentradas->urtDetalle($jur->getIdTransaccion());
				
				if ($iddetalle == 0) {
				    $iddetalle = 14900;
				}
				
				$ojtde = $this->detallerentradas->LoadDetalleById($iddetalle);
								
				
				$diasut = $this->CalcularDias($ojtde->getDateSistema(),date("Y-m-d"));				
				$idtipoentrada=$this->mtipoentrada->LoadEstatusById($jur->getdTipoEntrada());
				$entrada = $idtipoentrada->getNombre();
				
				//$identrada=$this->mtipoentrada->LoadEstatusById($jur->getIdEstatus());
				//$tipoentrada = $identrada->getNombre();
				 
				 if ($jur->getProximoContacto() == $jur->getDateSolicitud()) {
		                 	$pociento = 100;
		                 }   
				else {
		         $hora = $this->CalcularDias($jur->getDateSolicitud(),$jur->getProximoContacto());
		         $hora2 = $this->CalcularDias(date("Y-m-d"),$jur->getProximoContacto());
		         $porciento = $hora2/$hora;
		         $porciento = $porciento * 100;
		         $pociento =  100 - $porciento ; 
		         $pociento = intval($pociento);
				}
				 $colores_array_etapa=$this->mregistro->loadModeloEtapas();
				 $colores_etapa=$colores_array_etapa[0];
		         
				 $fechal = explode('-',substr($jur->getDateSolicitud(),0,10));
				 $fechafl = $fechal[1].'/'.$fechal[2].'/'.$fechal[0];
				 
				 $fecha2 =  explode('-',substr($jur->getProximoContacto(),0,10));
				 $fechaf2 = $fecha2[1].'/'.$fecha2[2].'/'.$fecha2[0];
				  
		         if ($pociento < 1) {
		             	$pociento = '0';
		             }
		             
		       if ($jur->getEtl() == 1) {
		       	   $estrella="<img src='http://code.company24h.com/public/images/e1.png'/>";
		       }
		       elseif ($jur->getEtl() == 2)
		       {
		       	$estrella="<img src='http://code.company24h.com/public/images/e2.png'/>";
		       }
		       else 
		       {
		       	$estrella="<img src='http://code.company24h.com/public/images/e3.png'/>";
		       }
		             
		       if ($pociento < $colores_etapa->getAmarilloModelo())
		          {
		             	$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
		         } 
		        elseif ($pociento >= $colores_etapa->getRojoModelo())
		        {
		         	$imagen="<img src='http://code.company24h.com/public/images/3.png'/>";
		       }       
		        else 
		        {
		            $imagen="<img src='http://code.company24h.com/public/images/2.png'/>";	
		        } 
		         
		        $cantidad =''.$this->CalcularDias3($jur->getDateSistema());
		        
				$arr = $json_output['rows'][] = array(
				'IdTransaccion' 	=>$jur->getIdTransaccion(),
				'referencia' 		=>$jur->getReferencia(),
				'DateSolicitud' 	=>$fechafl,
				'idServicios' 		=>$servicio,
				'entrada'			=>$entrada,
				'ProximoContacto'	=>$fechaf2,
				'cantida'			=>intval($cantidad),
				'image' 			=>$imagen,
				'contacto'			=>$jur->getConctato(),
				'estrella'			=>$estrella,
				'diase'				=>intval($diasut));
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
		
	}
	
     function datavs($id) 
	 {
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'ID_airport'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
        
		   // echo $id;
		   
	        $this->session->set_userdata('idUsuarioGrafico',$id);
		   
	    $records = $this->mtransaccionentrada->LoadTransacionIdUse($id);

		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);

		if($records != false) {
			foreach($records as $jur) {
				
			
				$idservicio=$this->mservicios->LoadServicioById($jur->getIdServicios());
				$servicio = $idservicio->getNombreServicio();
				
				$iddetalle = $this->detallerentradas->urtDetalle($jur->getIdTransaccion());
				$ojtde = $this->detallerentradas->LoadDetalleById($iddetalle);
								
				
				
				$diasut = $this->CalcularDias($ojtde->getDateSistema(),date("Y-m-d"));				
				$idtipoentrada=$this->mtipoentrada->LoadEstatusById($jur->getdTipoEntrada());
				$entrada = $idtipoentrada->getNombre();
				
				//$identrada=$this->mtipoentrada->LoadEstatusById($jur->getIdEstatus());
				//$tipoentrada = $identrada->getNombre();
				 
				 if ($jur->getProximoContacto() == $jur->getDateSolicitud()) {
		                 	$pociento = 100;
		                 }   
				else {
		         $hora = $this->CalcularDias($jur->getDateSolicitud(),$jur->getProximoContacto());
		         $hora2 = $this->CalcularDias(date("Y-m-d"),$jur->getProximoContacto());
		         $porciento = $hora2/$hora;
		         $porciento = $porciento * 100;
		         $pociento =  100 - $porciento ; 
		         $pociento = intval($pociento);
				}
				 $colores_array_etapa=$this->mregistro->loadModeloEtapas();
				 $colores_etapa=$colores_array_etapa[0];
		         
				 $fechal = explode('-',substr($jur->getDateSolicitud(),0,10));
				 $fechafl = $fechal[1].'/'.$fechal[2].'/'.$fechal[0];
				 
				 $fecha2 =  explode('-',substr($jur->getProximoContacto(),0,10));
				 $fechaf2 = $fecha2[1].'/'.$fecha2[2].'/'.$fecha2[0];
				  
		         if ($pociento < 1) {
		             	$pociento = '0';
		             }
		             
		       if ($jur->getEtl() == 1) {
		       	   $estrella="<img src='http://code.company24h.com/public/images/e1.png'/>";
		       }
		       elseif ($jur->getEtl() == 2)
		       {
		       	$estrella="<img src='http://code.company24h.com/public/images/e2.png'/>";
		       }
		       else 
		       {
		       	$estrella="<img src='http://code.company24h.com/public/images/e3.png'/>";
		       }
		             
		       if ($pociento < $colores_etapa->getAmarilloModelo())
		          {
		             	$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
		         } 
		        elseif ($pociento >= $colores_etapa->getRojoModelo())
		        {
		         	$imagen="<img src='http://code.company24h.com/public/images/3.png'/>";
		       }       
		        else 
		        {
		            $imagen="<img src='http://code.company24h.com/public/images/2.png'/>";	
		        } 
		         
		        $cantidad =''.$this->CalcularDias3($jur->getDateSistema());
		        
				$arr = $json_output['rows'][] = array(
				'IdTransaccion' =>$jur->getIdTransaccion(),
				'referencia' => $jur->getReferencia(),
				'DateSolicitud' =>$fechafl,
				'idServicios' =>$servicio,
				'entrada'=>$entrada,
				'ProximoContacto'=>$fechaf2,
				'cantida'=>intval($cantidad),
				'image' => $imagen,
				'contacto'=>$jur->getConctato(),
				'estrella'=>$estrella,
				'diase'=>intval($diasut)
				
				);
				
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
	}
	
	function historialdata($id = false)
	{
	         $page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		     $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdTransaccion'; // Columna para el order by
		     $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		     $limit = $this->input->post('rows') ? $this->input->post('rows') : 100;
		     $start = $limit * $page - $limit;
		     if($start < 0) $start = 0;
  
		      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		      header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		      header("Cache-Control: no-cache, must-revalidate" );
		      header("Pragma: no-cache" );

		     $records = $this->TransaccionHistorico->loadTransaccionH($start, $limit, $sortname, $sortorder);

		     $totalRecords = count($records);

		     $totalPages = ceil($totalRecords/$limit);
		     if ($page > $totalPages) $page = $totalPages;

		        $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalPages,
		            'records'	=> $totalRecords,
		            'rows'		=> array()
		        );

		       if($records != false) 
		       {
			     foreach($records as $objetos){
                      
			     	$servicio = $this->mservicios->LoadServicioById($objetos->getIdServicio());
			     	$tipoEntrada = $this->mtipoentrada->LoadEstatusById($objetos->getIdTipoEntrada());
			     	$usuario = $this->usuarios->LoadUsuarioById($objetos->getIdUsuarioHistorico());
			     	$motivoSalida = $this->mmotivosalida->LoadEstatusById($objetos->getIdMotivoSalida());
			     	
				     $arr = $json_output['rows'][] = array(
				          'IdTransaccion'            => $objetos->getIdTransaccion(),
				          'Referencia'               => $objetos->getReferencia(),
				          'IdServicio'               => $servicio->getNombreServicio(),
				          'IdTipoEntrada'            => $tipoEntrada->getNombre(),
				          'Contacto'                 => $objetos->getContacto(),
				          'Telefono1'                => $objetos->getTelefono1(),
				          'IdUsuarioHistorico'       => $usuario->getNombreUsuario(),
				          'FechaHistorico'           => substr($objetos->getFechaHistorico(),0,10),
				          'IdMotivoSalida'           => $motivoSalida->getNombre()
				      );
			      }
		        }

		 echo json_encode($json_output);
		    
	}
	
	function tranformaHisorico()
	{
	   $whereArray = array("StadoTransaccion" => 1);	
	   $registro = $this->mtransaccionentrada->loadTransacionByArray($whereArray);
	   
	   foreach ($registro as $objeto){

	   	  $date = date("Y-m-d H:i:s");
	   	
	   	   $dataArray = array(
	   	                      "IdTransaccion"        => $objeto->getIdTransaccion(),
	   	                      "Referencia"           => $objeto->getReferencia(),
	   	                      "IdServicio"           => $objeto->getIdServicios(),
	   	                      "IdTipoEntrada"        => $objeto->getdTipoEntrada(),
	   	                      "Contacto"             => $objeto->getConctato(),
	   	                      "Telefono1"            => $objeto->getTelefono(),
	   	                      "Telefono2"            => $objeto->getTelefono2(),
	   	                      "Email"                => $objeto->getEmail(),
	   	                      "IdUsuario"            => $objeto->getUsuario(),
	   	                      "IdUsuarioHistorico"   => $objeto->getUsuario(),
	   	                      "IdMotivoSalida"       => $objeto->getIdSalida(),
	   	                      "FechaHistorico"       => $date,
	   	                      "FechaSolicitud"       => $objeto->getDateSolicitud(),
	   	                      "FechaSistema"         => $objeto->getDateSistema()
	   	                      );

	   	    if ($this->TransaccionHistorico->transaccionAdd($dataArray) == true) {
	   	 	       
	   	    		$this->mtransaccionentrada->eliminal($objeto->getIdTransaccion());
	   	     }                     
	   	    
	   	}
	   
	}
	
	function cvs(){
	   
	   $servicio = $this->input->post('servicio');
	   $estrella = $this->input->post('estrella');
	   $estado = $this->input->post('estado');
	   
	     	$salida = $this->input->post('salida');
	     	
	         if ($estado == 2) {
	         	 $where['idMotivoSalida'] = $salida;
	         	 $where['StadoTransaccion'] = 1;
	         }else{
	             $where['StadoTransaccion'] = 0;
	         }
	     	
	     	  if ($servicio != 0 ) {
	     	  	$where['idServicios'] = $servicio;
	     	  	
	     	  }
	     	  
	         if ($estrella != 0 ) {
	     	  	$where['est'] = $estrella;
	     	  	
	     	  }
	     	  
	     
	 
	   
	   $transacion_entrada = $this->mtransaccionentrada->LoadTransacionWhere($where); 
	    
	    $documento = '';
	   foreach ($transacion_entrada as $value) {
	   	  
	   	$entrada = $this->mtipoentrada->LoadEstatusById($value->getdTipoEntrada());
	   	$usuario = $this->usuarios->LoadUsuarioById($value->getUsuario());
	   	$servicio = $this->mservicios->LoadServicioById($value->getIdServicios());
	   	if (strlen($value->getEmail()) > 5) {
	   		 $documento .= $value->getEmail()."|".$value->getConctato()."|".$entrada->getNombre()."|".$usuario->getNombreUsuario()."|".$servicio->getNombreServicio()."\n";
	   	}
	   	 
	   	  
	   
	   }
	   $csvName = "email.cvs";
	   
	   $ar=fopen($csvName,"a") or die("Problemas en la creacion");
       fputs($ar,$documento);
       fclose($ar);
       
        header('Content-Type: application/x-octet-stream');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Last-Modified: '.date('D, d M Y H:i:s'));
        header('Content-Disposition: attachment; filename="Reporte_de_pedidos'.date('Ymd')  .'.csv"');
        header("Content-Length: ".filesize($csvName));
        // echo $csvContent; 

        // delete file
        // unlink($csvName);
    
    echo($documento);

	}

	
	function data2() 
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'ID_airport'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
        	

		
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-cache" );

	    $records = $this->detallerentradas->cargarDetallePorRegistro($this->input->post('iddetalle')); 
	   
        $this->session->set_userdata('idregistro',$this->input->post('iddetalle'));

		$totalRecords = count($records); 

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		
				if($records != false) {
				foreach($records as $jur) {
				 
				$fechal = explode('-',$jur->getDateSistema());
		        $fechafl = $fechal[1].'/'.$fechal[2].'/'.$fechal[0];
				$idusuario=$this->usuarios->LoadUsuarioById($jur->getIdUsuario());
				$usuario = $idusuario->getNombreUsuario();
				
				$tipoSeguimiento = $this->tiposeguimientomodel->loadDataById($jur->getTipoSeguimiento());
				
				$arr = $json_output['rows'][] = array('id'               	=>$jur->getIdDetalle(),
													  'ContenidoDetalle' 	=>$jur->getCotenido(),
													  'usuario' 	     	=>$usuario,
													  'date'            	=>$fechafl,
													  'idTipoSeguimiento'	=>$tipoSeguimiento->getTipoSeguimiento());
													  
			 }
	
		}


		echo json_encode($json_output);
	}
	
	function historial($id_registro)
	{
		$this->load->view('main', array('content_page' =>'motivohistorial',
										'motivo'       =>$this->mmotivosalida->LoadEstatus(),
										'id'           =>$id_registro,
										'menutop'      =>'2'));
	}
	
	function finalizar($idJurisdicion = 0, $idMotido = 0, $precioVenta = 0)
	{
		
		$ids    = ($idJurisdicion > 0)? $idJurisdicion : $this->input->post('idregistro');
		$motivo = ($idMotido > 0)? $idMotido : 6;
		$precio = ($precioVenta > 0)? $precioVenta : @$this->input->post('precio');
		
		
		$objeto = $this->mtransaccionentrada->LoadjurisdiccionById($ids);
		
		$formatoFecha = date("Y-m-d H:i:s");
		
		$data = array(
		             "IdTransaccion"       		=> $objeto->getIdTransaccion(),
		             "Referencia"           	=> $objeto->getReferencia(),
		             "IdServicio"           	=> $objeto->getIdServicios(),
		             "IdTipoEntrada"        	=> $objeto->getdTipoEntrada(),
		             "Contacto"             	=> $objeto->getConctato(),
		             "Telefono1"            	=> $objeto->getTelefono(),
		             "Telefono2"            	=> $objeto->getTelefono2(),
		             "Email"                	=> $objeto->getEmail(),
		             "IdUsuario"            	=> $objeto->getUsuario(),
		             "IdUsuarioHistorico"   	=> $this->session->userdata('LOGGED_USR_ID'),
		             "IdMotivoSalida"       	=> $motivo,
		             "FechaHistorico"       	=> $formatoFecha,
		             "FechaSolicitud"       	=> $objeto->getDateSolicitud(),
		             "FechaSistema"         	=> $objeto->getDateSistema(),
					 "preciosVentas"        	=> $precio,
					 "CampaniaId"           	=> $objeto->getCampania(),
					 "est"						=> $objeto->getEtl());
		
		 $this->TransaccionHistorico->transaccionAdd($data);
		   
		      redirect('main_tran');		   
	}

	/**
	 * 
	 * Enter description here ...
	 */
	/*public function modificarTransaccionHistorico()
	{
		$inbound = $this->TransaccionHistorico->loadTransaccionH();
		
		foreach($inbound as $registros)
		{
			$id = $registros->getIdTransaccion();
			$data = array('FechaSistema' => $registros->getFechaSolicitud());
			
			$actualizar = $this->TransaccionHistorico->upDateRegistro($data, $id);
			
		}
		
		     echo "Se Han actualizados satisfacotriamente";
		
	}*/
	function detalle($id)
	{
		$objeto = $this->TransaccionHistorico->loadTransaccionById($id);
		$servicio = $this->mservicios->LoadServicioById($objeto->getIdServicio());
		$tipoEntrada = $this->mtipoentrada->LoadEstatusById($objeto->getIdTipoEntrada());
		$usuario = $this->usuarios->LoadUsuarioById($objeto->getIdUsuario());
		$usuarioh = $this->usuarios->LoadUsuarioById($objeto->getIdUsuarioHistorico());
		$motivoSalida = $this->mmotivosalida->LoadEstatusById($objeto->getIdMotivoSalida());
		
		$data = array(
		              "referencia"           => $objeto->getReferencia(),
		              "servicio"             => $servicio->getNombreServicio(),
		              "tipoEntrada"          => $tipoEntrada->getNombre(),
		              "contacto"             => $objeto->getContacto(),
		              "telefono"             => $objeto->getTelefono1(),
		              "telefono2"            => $objeto->getTelefono2(),
		              "email"                => $objeto->getEmail(),
		              "usuario"              => $usuario->getNombreUsuario(),
		              "usuarioH"             => $usuarioh->getNombreUsuario(),
		              "moticoSalida"         => $motivoSalida->getNombre(),
		              "fechaH"               => $objeto->getFechaHistorico(),
		              "fechaSolicitud"       => $objeto->getFechaSolicitud());
		             
		$this->load->view('main', array('content_page' => 'detalleTransacion','menutop'=>'0','objeto'=>$data));
	}
	
	
}